﻿package  
{
	import flash.display.MovieClip;
	import flash.events.*;
	import flash.net.*;
	import flash.text.TextField;
	
	public class Main extends MovieClip
	{
		var dataTxt:TextField = new TextField();
		var button:TextField = new TextField();
		
		public function Main() 
		{
			trace ("Geht los!");
 			button.text = "zum Laden hier klicken!";
			button.border = true;
			button.borderColor = 0x00000000;
			button.width = 100;
			button.height = 20;
			button.x = 10;
			button.y = 90;
			button.addEventListener(MouseEvent.CLICK, fetch);
			
			dataTxt.text = "--- hier steht der Rezept-Titel ---";
			dataTxt.width = 150;
			dataTxt.x = 10;
			dataTxt.y = 10;
			
			// add elements to stage
			this.addChild(dataTxt);
			this.addChild(button);
        }
		
		private function fetch(e:Event):void {
			// xml from Stock-Server
			const request:URLRequest = new URLRequest("http://minf3.mstock.de/data/beispiel.xml");
			
			// load the xml
			const xmlLoader:URLLoader = new URLLoader();
			
			// Listener eintragen:
			xmlLoader.addEventListener(Event.COMPLETE, onLoadedXML);
			// für Fehlerfälle:
			xmlLoader.addEventListener(IOErrorEvent.IO_ERROR, onLoadError);
			xmlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onLoadError);
			
			xmlLoader.load(request);
		}
		
		private function onLoadedXML(e:Event):void 
		{
			// Kommentare in der XML Datei ignorieren
			XML.ignoreComments = true;		
			// Leerzeichen ignorieren
			XML.ignoreWhitespace = true;
		
			try {
				// XML-Objekt erstellen aus geladenen Daten
				var xml = new XML(e.target.data);
				
				// sichtbarmachen:
				trace(xml);
				// Beispielzugriff auf Element der ersten Ebene
				dataTxt.text = "Titel:" + xml.titel.text();
				
			} catch (e:TypeError) {
				trace(e);
			}
		}
		
		private function onLoadError(e:IOErrorEvent):void 
		{
			trace(e);
		}
	}
}